iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 12
0
Modern Web

使用 Django 開發網頁系統系列 第 12

[Day 12] 重構程式(route variable)

  • 分享至 

  • xImage
  •  

今天講 路由變數 的使用

前幾天做了表單新增的功能, 重複的 url 寫了很多次

不過這是沒有一定要做就是了,做了會比較好

django 有路由變數的功能,可以在 urls.py 定義,在views.py 跟 templates 都能使用

這樣如果要改url位置,就不用全改了,應該是不會常改,改了不過命名會變很奇怪就是了

django urls namespace
https://docs.djangoproject.com/en/2.0/topics/http/urls/#id5

加上 app_name = 'store'
每個 path() 加上第三個參數 name='<url_name>'

store/urls.py

app_name = 'store'
urlpatterns = [
    path('category/', views.category, name='category'),
    path('categoryCreate/', views.categoryCreate, name='categoryCreate')
]

templates url tag
https://docs.djangoproject.com/en/2.0/ref/templates/builtins/#url

template 使用 {% url '<app_name>:<path_name>' %}
store/templates/store/category.html
改成

...
<a href="{% url 'store:categoryCreate' %}">新增</a>
...

store/templates/store/categoryCreate.html
改成

...
<form method="post" action="{% url 'store:categoryCreate' %}">
...

改成 reverse('<app_name>:<path_name>')

store/views.py
改成

from django.urls import reverse
...
def categoryCreate(request):
    ...
        return redirect(reverse('store:category'))
...

以後寫習慣了加新的route就可以先命變數了

今天內容比較少


上一篇
[Day 11] 重構表單-forms.py
下一篇
[Day 13] 顯示訊息 messages framework+重構程式(extends templates)
系列文
使用 Django 開發網頁系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言